home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 090 / tclock.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1984-04-24  |  19.6 KB  |  502 lines

  1. 10  ' TCLOCK.BAS
  2. 1000  ' -----------------------------------------------------------------------
  3. 1010  ' PROGRAM NAME = TCLOCK
  4. 1020  '     FUNCTION = DATE AND TIME DISPLAY ON MONOCHROME
  5. 1030  ' -----------------------------------------------------------------------
  6. 1040  '       AUTHOR = WILLIAM T. VATH
  7. 1050  ' -----------------------------------------------------------------------
  8. 1060  '
  9. 1070  ' To See Instruction Menu, Type Character ?.(INSTRUCTIONS)
  10. 1080  '
  11. 1090  ' To Set Alarm Type Character A.(ALARM)
  12. 1100  '
  13. 1110  ' To Switch From 12 Hour To 24 Hour Display, Type Character M.(MODE)
  14. 1120  '
  15. 1130  ' To Turn Time Change Beep On Or Off, Type Character B.(BEEP)
  16. 1140  '
  17. 1150  ' To Turn Chimes On Or Off, Type Character C.(CHIME)
  18. 1160  '
  19. 1170  ' To Set Date & Time, Type Character S.(SET)
  20. 1180  '
  21. 1190  ' To Cancel The Program And Return To Caller, Hit The ESC Key.
  22. 1200  '
  23. 1210  ' -----------------------------------------------------------------------
  24. 1220  '
  25. 1230  DEFINT A-Z:DIM ALARM$(6),ALDESC$(6):AL$="  :  ":DES$=STRING$(50,32)
  26. 1240  DEF SEG=&H40:POKE &H17,64
  27. 1250  FOR I=1 TO 6:ALARM$(I)=AL$:ALDESC$(I)=DES$:NEXT
  28. 1260  KEY OFF:WIDTH 80:COLOR 7,0:CLS
  29. 1270  D1SAVE=99:D2SAVE=99:D3SAVE=99:D4SAVE=99:TLSAVE=99:TR1SAVE=99:TR2SAVE=99
  30. 1280  SW1$="1":SW2$="0":BP1$="1":BP2$="0":CH1$="0":CH2$="1":AL1$="0"
  31. 1290  ET1$="0":ET2$="1"
  32. 1300  ' -----------------------------------------------------------------------
  33. 1310  '                                                           PRINT BIG BOX
  34. 1320  ' -----------------------------------------------------------------------
  35. 1330  '
  36. 1340  CLS:LOCATE 1,1,0:COLOR 7,0:PRINT CHR$(201)+STRING$(77,205)+CHR$(187);
  37. 1350  FOR I=2 TO 24
  38. 1360  LOCATE I,1:PRINT CHR$(186);:LOCATE I,79:PRINT CHR$(186);
  39. 1370  NEXT
  40. 1380  LOCATE 25,1:PRINT CHR$(200)+STRING$(77,205)+CHR$(188);
  41. 1390  ' -----------------------------------------------------------------------
  42. 1400  '                                                       PRINT CENTER LINE
  43. 1410  ' -----------------------------------------------------------------------
  44. 1420  '
  45. 1430  LOCATE 13,1:COLOR 7,0:PRINT CHR$(204)+STRING$(77,205)+CHR$(185);
  46. 1440  ' -----------------------------------------------------------------------
  47. 1450  '                                                          PRINT DATE BOX
  48. 1460  ' -----------------------------------------------------------------------
  49. 1470  '
  50. 1480  LOCATE 6,2:COLOR 7,0:PRINT CHR$(201)+STRING$(4,205)+CHR$(187);
  51. 1490  LOCATE 7,2:PRINT CHR$(186)+STRING$(4,32)+CHR$(186);
  52. 1500  LOCATE 8,2:PRINT CHR$(200)+STRING$(4,205)+CHR$(188);
  53. 1510  LOCATE 7,3:PRINT "DATE";
  54. 1520  ' -----------------------------------------------------------------------
  55. 1530  '                                                         PRINT DATE DASH
  56. 1540  ' -----------------------------------------------------------------------
  57. 1550  '
  58. 1560  LOCATE 7,36:COLOR 0,7:PRINT STRING$(4,32)
  59. 1570  ' -----------------------------------------------------------------------
  60. 1580  '                                                          PRINT yEAR BOX
  61. 1590  ' -----------------------------------------------------------------------
  62. 1600  '
  63. 1610  LOCATE 9,72:COLOR 7,0:PRINT CHR$(201)+CHR$(205)+CHR$(205)+CHR$(187);
  64. 1620  LOCATE 10,72:PRINT CHR$(186)+CHR$(32)+CHR$(32)+CHR$(186);
  65. 1630  LOCATE 11,72:PRINT CHR$(200)+CHR$(205)+CHR$(205)+CHR$(188);
  66. 1640  ' -----------------------------------------------------------------------
  67. 1650  '                                                          PRINT TIME BOX
  68. 1660  ' -----------------------------------------------------------------------
  69. 1670  '
  70. 1680  LOCATE 18,2:COLOR 7,0:PRINT CHR$(201)+STRING$(4,205)+CHR$(187);
  71. 1690  LOCATE 19,2:PRINT CHR$(186)+STRING$(4,32)+CHR$(186);
  72. 1700  LOCATE 20,2:PRINT CHR$(200)+STRING$(4,205)+CHR$(188);
  73. 1710  LOCATE 19,3:PRINT "TIME";
  74. 1720  ' -----------------------------------------------------------------------
  75. 1730  '                                                        PRINT TIME COLON
  76. 1740  ' -----------------------------------------------------------------------
  77. 1750  '
  78. 1760  LOCATE 17,37:COLOR 0,7:PRINT SPACE$(2):LOCATE 21,37:PRINT SPACE$(2)
  79. 1770  ' -----------------------------------------------------------------------
  80. 1780  '                                                       PRINT SECONDS BOX
  81. 1790  ' -----------------------------------------------------------------------
  82. 1800  '
  83. 1810  LOCATE 21,72:COLOR 7,0:PRINT CHR$(201)+CHR$(205)+CHR$(205)+CHR$(187);
  84. 1820  LOCATE 22,72:PRINT CHR$(186)+CHR$(32)+CHR$(32)+CHR$(186);
  85. 1830  LOCATE 23,72:PRINT CHR$(200)+CHR$(205)+CHR$(205)+CHR$(188);
  86. 1840  ' -----------------------------------------------------------------------
  87. 1850  '                                                                GET DATE
  88. 1860  ' -----------------------------------------------------------------------
  89. 1870  '
  90. 1880  D$=DATE$
  91. 1890  D1$=LEFT$(D$,1):D2$=MID$(D$,2,1):D3$=MID$(D$,4,1):D4$=MID$(D$,5,1)
  92. 1900  D1=VAL(D1$):D2=VAL(D2$):D3=VAL(D3$):D4=VAL(D4$):YR$=RIGHT$(D$,2)
  93. 1910  LOCATE 10,73:COLOR 7,0:PRINT YR$;
  94. 1920  ' -----------------------------------------------------------------------
  95. 1930  '                                                                GET TIME
  96. 1940  ' -----------------------------------------------------------------------
  97. 1950  '
  98. 1960  T$=TIME$:TL$=LEFT$(T$,2)
  99. 1970  TR$=MID$(T$,4,2):TR1$=MID$(T$,4,1):TR2$=MID$(T$,5,1)
  100. 1980  TL=VAL(TL$):TR=VAL(TR$):TR1=VAL(TR1$):TR2=VAL(TR2$)
  101. 1990  IF SW1$="1" THEN 2000 ELSE 2050
  102. 2000  IF TL>11 AND TR>0 THEN LOCATE 15,72:COLOR 1,0:PRINT"P M":GOTO 2020
  103. 2010  LOCATE 15,72:COLOR 1,0:PRINT "A M";
  104. 2020  '
  105. 2030  IF TL>12 THEN TL=TL-12
  106. 2050  '
  107. 2060  IF SW1$="0" THEN LOCATE 15,72:COLOR 1,0:PRINT "MIL";
  108. 2070  SEC$=RIGHT$(T$,2):LOCATE 22,73:COLOR 7,0:PRINT SEC$;:COLOR 0,7
  109. 2080  LOCATE 24,2:COLOR 7,0:IF CH1$="1" THEN PRINT CHR$(14); ELSE PRINT" ";
  110. 2090  LOCATE 24,78:COLOR 7,0:IF BP1$="1" THEN PRINT CHR$(46); ELSE PRINT" ";
  111. 2100  ' -----------------------------------------------------------------------
  112. 2110  '                                                       CHECK ALARM TIMES
  113. 2120  ' -----------------------------------------------------------------------
  114. 2130  '
  115. 2140  AL1$="0"
  116. 2150  TALARM$=LEFT$(T$,5)
  117. 2160  FOR I=1 TO 6
  118. 2170  IF ALARM$(I)="  :  " OR ALARM$(I)="  :" THEN 2180 ELSE AL1$="1"
  119. 2180  IF TALARM$=ALARM$(I) THEN GOTO 5610
  120. 2190  NEXT
  121. 2200  IF AL1$="1" THEN LOCATE 2,2:PRINT CHR$(64);
  122. 2210  ' -----------------------------------------------------------------------
  123. 2220  '                                                   CHECK RESPONSE IF ANY
  124. 2230  ' -----------------------------------------------------------------------
  125. 2240  '
  126. 2250  RESP$=INKEY$
  127. 2260  IF RESP$=CHR$(27) THEN 6000
  128. 2270  IF RESP$="M" THEN SWAP SW1$,SW2$
  129. 2280  IF SW1$="0" THEN CH1$="0":CH2$="1"
  130. 2290  IF RESP$="B" THEN SWAP BP1$,BP2$
  131. 2300  IF RESP$="E" THEN SWAP ET1$,ET2$
  132. 2310  IF ET1$="1" THEN CH1$="0":CH2$="1":BP1$="0":BP2$="1"
  133. 2320  IF RESP$="C" THEN SWAP CH1$,CH2$
  134. 2330  IF CH1$="1" THEN BP1$="0":BP2$="1":SW1$="1":SW2$="0":ET1$="0":ET2$="1"
  135. 2340  IF RESP$="R" THEN CNT1=0:CNT2=0:CNT3=0
  136. 2350  IF RESP$="S" THEN GOTO 4620
  137. 2360  IF RESP$="A" THEN GOTO 4810
  138. 2370  IF RESP$="?" THEN GOTO 5750
  139. 2380  ' -----------------------------------------------------------------------
  140. 2390  '                                                    DISPLAY DATE DIGIT 1
  141. 2400  ' -----------------------------------------------------------------------
  142. 2410  '
  143. 2420  A=3
  144. 2430  IF D1=D1SAVE THEN 2520
  145. 2440  B=10
  146. 2450  IF D1=0 THEN 2480
  147. 2460  GOSUB 4180
  148. 2470  ON D1 GOSUB 3460,3520,3590,3650,3730,3790,3860,3920,4010
  149. 2480  D1SAVE=D1
  150. 2490  ' -----------------------------------------------------------------------
  151. 2500  '                                                    DISPLAY DATE DIGIT 2
  152. 2510  ' -----------------------------------------------------------------------
  153. 2520  '
  154. 2530  IF D2=D2SAVE THEN 2620
  155. 2540  B=25
  156. 2550  GOSUB 4180
  157. 2560  IF D2=0 THEN GOSUB 4080
  158. 2570  ON D2 GOSUB 3460,3520,3590,3650,3730,3790,3860,3920,4010
  159. 2580  D2SAVE=D2
  160. 2590  ' -----------------------------------------------------------------------
  161. 2600  '                                                    DISPLAY DATE DIGIT 3
  162. 2610  ' -----------------------------------------------------------------------
  163. 2620  '
  164. 2630  IF D3=D3SAVE THEN 2720
  165. 2640  B=42
  166. 2650  GOSUB 4180
  167. 2660  IF D3=0 THEN GOSUB 4080
  168. 2670  ON D3 GOSUB 3460,3520,3590,3650,3730,3790,3860,3920,4010
  169. 2680  D3SAVE=D3
  170. 2690  ' -----------------------------------------------------------------------
  171. 2700  '                                                    DISPLAY DATE DIGIT 4
  172. 2710  ' -----------------------------------------------------------------------
  173. 2720  '
  174. 2730  IF D4=D4SAVE THEN 2820
  175. 2740  B=57
  176. 2750  GOSUB 4180
  177. 2760  IF D4=0 THEN GOSUB 4080
  178. 2770  ON D4 GOSUB 3460,3520,3590,3650,3730,3790,3860,3920,4010
  179. 2780  D4SAVE=D4
  180. 2790  ' -----------------------------------------------------------------------
  181. 2800  '                                                    DISPLAY TIME DIGIT 1
  182. 2810  ' -----------------------------------------------------------------------
  183. 2820  '
  184. 2830  A=15
  185. 2840  IF TL=TLSAVE THEN 3030
  186. 2850  IF BP1$="1" THEN 2860 ELSE 2870
  187. 2860  SOUND 3000,2
  188. 2870  B=10
  189. 2880  GOSUB 4180
  190. 2890  IF TL=0 THEN GOTO 2940
  191. 2900  ON TL GOSUB 2940,2940,2940,2940,2940,2940,2940,2940,2940,3460,3460,3460,3460,3460,3460,3460,3460,3460,3460,3520,3520,3520,3520,3520
  192. 2910  ' -----------------------------------------------------------------------
  193. 2920  '                                                    DISPLAY TIME DIGIT 2
  194. 2930  ' -----------------------------------------------------------------------
  195. 2940  '
  196. 2950  B=25
  197. 2960  GOSUB 4180
  198. 2970  IF TL=0 THEN GOSUB 4080
  199. 2980  ON TL GOSUB 3460,3520,3590,3650,3730,3790,3860,3920,4010,4080,3460,3520,3590,3650,3730,3790,3860,3920,4010,4080,3460,3520,3590,3650
  200. 2990  TLSAVE=TL
  201. 3000  ' -----------------------------------------------------------------------
  202. 3010  '                                                    DISPLAY TIME DIGIT 3
  203. 3020  ' -----------------------------------------------------------------------
  204. 3030  '
  205. 3040  IF TR1=TR1SAVE THEN 3130
  206. 3050  B=42
  207. 3060  GOSUB 4180
  208. 3070  IF TR1=0 THEN GOSUB 4080
  209. 3080  ON TR1 GOSUB 3460,3520,3590,3650,3730,3790,3860,3920,4010
  210. 3090  TR1SAVE=TR1
  211. 3100  ' -----------------------------------------------------------------------
  212. 3110  '                                                    DISPLAY ELAPSED TIME
  213. 3120  ' -----------------------------------------------------------------------
  214. 3130  '
  215. 3140  IF ET1$="0" THEN 3210
  216. 3150  '
  217. 3160  IF SEC$=SECHOLD$ THEN 3210
  218. 3170  CNT3=CNT3+1
  219. 3180  IF CNT3>=60 THEN CNT2=CNT2+1:CNT3=0
  220. 3190  IF CNT2>=60 THEN CNT1=CNT1+1:CNT2=0
  221. 3200  SECHOLD$=SEC$
  222. 3210  '
  223. 3220  IF CNT1+CNT2+CNT3=0 THEN LOCATE 2,71:COLOR 7,0:PRINT SPACE$(8):GOTO 3270
  224. 3230  LOCATE 2,71:COLOR 7,0:PRINT USING"##";CNT1;
  225. 3240  LOCATE 2,73:PRINT USING":##";CNT2;
  226. 3250  LOCATE 2,76:PRINT USING":##";CNT3;
  227. 3260  ' -----------------------------------------------------------------------
  228. 3270  '                                                    DISPLAY TIME DIGIT 4
  229. 3280  ' -----------------------------------------------------------------------
  230. 3290  '
  231. 3300  IF TR2=TR2SAVE THEN 1850
  232. 3310  IF BP1$="1" THEN 3320 ELSE 3330
  233. 3320  SOUND 4000,1
  234. 3330  B=57
  235. 3340  GOSUB 4180
  236. 3350  IF TR2=0 THEN GOSUB 4080
  237. 3360  ON TR2 GOSUB 3460,3520,3590,3650,3730,3790,3860,3920,4010
  238. 3370  TR2SAVE=TR2
  239. 3380  IF CH1$="1" AND TR$="15" THEN GOSUB 4270
  240. 3390  IF CH1$="1" AND TR$="30" THEN GOSUB 4330
  241. 3400  IF CH1$="1" AND TR$="45" THEN GOSUB 4400
  242. 3410  IF CH1$="1" AND TR$="00" THEN GOSUB 4490
  243. 3420  GOTO 1850
  244. 3430  ' -----------------------------------------------------------------------
  245. 3440  '                                                       DIGIT SUBROUTINES
  246. 3450  ' -----------------------------------------------------------------------
  247. 3460  ' 1
  248. 3470  LOCATE A+0,B+4:PRINT SPACE$(2);:LOCATE A+1,B+4:PRINT SPACE$(2);
  249. 3480  LOCATE A+2,B+4:PRINT SPACE$(2);:LOCATE A+3,B+4:PRINT SPACE$(2);
  250. 3490  LOCATE A+4,B+4:PRINT SPACE$(2);:LOCATE A+5,B+4:PRINT SPACE$(2);
  251. 3500  LOCATE A+6,B+4:PRINT SPACE$(2);:LOCATE A+7,B+4:PRINT SPACE$(2);
  252. 3510  LOCATE A+8,B+4:PRINT SPACE$(2);:RETURN
  253. 3520  ' 2
  254. 3530  LOCATE A+0,B+0:PRINT SPACE$(9);:LOCATE A+1,B+7:PRINT SPACE$(2);
  255. 3540  LOCATE A+2,B+7:PRINT SPACE$(2);:LOCATE A+3,B+7:PRINT SPACE$(2);
  256. 3550  LOCATE A+4,B+0:PRINT SPACE$(9);:LOCATE A+5,B+0:PRINT SPACE$(2);
  257. 3560  LOCATE A+6,B+0:PRINT SPACE$(2);:LOCATE A+7,B+0:PRINT SPACE$(2);
  258. 3570  LOCATE A+8,B+0:PRINT SPACE$(9);:RETURN
  259. 3580  RETURN
  260. 3590  ' 3
  261. 3600  LOCATE A+0,B+0:PRINT SPACE$(9);:LOCATE A+1,B+7:PRINT SPACE$(2);
  262. 3610  LOCATE A+2,B+7:PRINT SPACE$(2);:LOCATE A+3,B+7:PRINT SPACE$(2);
  263. 3620  LOCATE A+4,B+0:PRINT SPACE$(9);:LOCATE A+5,B+7:PRINT SPACE$(2);
  264. 3630  LOCATE A+6,B+7:PRINT SPACE$(2);:LOCATE A+7,B+7:PRINT SPACE$(2);
  265. 3640  LOCATE A+8,B+0:PRINT SPACE$(9);:RETURN
  266. 3650  ' 4
  267. 3660  LOCATE A+0,B+0:PRINT SPACE$(2);:LOCATE A+0,B+7:PRINT SPACE$(2);
  268. 3670  LOCATE A+1,B+0:PRINT SPACE$(2);:LOCATE A+1,B+7:PRINT SPACE$(2);
  269. 3680  LOCATE A+2,B+0:PRINT SPACE$(2);:LOCATE A+2,B+7:PRINT SPACE$(2);
  270. 3690  LOCATE A+3,B+0:PRINT SPACE$(2);:LOCATE A+3,B+7:PRINT SPACE$(2);
  271. 3700  LOCATE A+4,B+0:PRINT SPACE$(9);:LOCATE A+5,B+7:PRINT SPACE$(2);
  272. 3710  LOCATE A+6,B+7:PRINT SPACE$(2);:LOCATE A+7,B+7:PRINT SPACE$(2);
  273. 3720  LOCATE A+8,B+7:PRINT SPACE$(2);:RETURN
  274. 3730  ' 5
  275. 3740  LOCATE A+0,B+0:PRINT SPACE$(9);:LOCATE A+1,B+0:PRINT SPACE$(2);
  276. 3750  LOCATE A+2,B+0:PRINT SPACE$(2);:LOCATE A+3,B+0:PRINT SPACE$(2);
  277. 3760  LOCATE A+4,B+0:PRINT SPACE$(9);:LOCATE A+5,B+7:PRINT SPACE$(2);
  278. 3770  LOCATE A+6,B+7:PRINT SPACE$(2);:LOCATE A+7,B+7:PRINT SPACE$(2);
  279. 3780  LOCATE A+8,B+0:PRINT SPACE$(9);:RETURN
  280. 3790  ' 6
  281. 3800  LOCATE A+0,B+0:PRINT SPACE$(9);:LOCATE A+1,B+0:PRINT SPACE$(2);
  282. 3810  LOCATE A+2,B+0:PRINT SPACE$(2);:LOCATE A+3,B+0:PRINT SPACE$(2);
  283. 3820  LOCATE A+4,B+0:PRINT SPACE$(9);:LOCATE A+5,B+0:PRINT SPACE$(2);
  284. 3830  LOCATE A+5,B+7:PRINT SPACE$(2);:LOCATE A+6,B+0:PRINT SPACE$(2);
  285. 3840  LOCATE A+6,B+7:PRINT SPACE$(2);:LOCATE A+7,B+0:PRINT SPACE$(2);
  286. 3850  LOCATE A+7,B+7:PRINT SPACE$(2);:LOCATE A+8,B+0:PRINT SPACE$(9);:RETURN
  287. 3860  ' 7
  288. 3870  LOCATE A+0,B+0:PRINT SPACE$(9)PRINT:LOCATE A+1,B+7:PRINT SPACE$(2);
  289. 3880  LOCATE A+2,B+7:PRINT SPACE$(2);:LOCATE A+3,B+7:PRINT SPACE$(2);
  290. 3890  LOCATE A+4,B+7:PRINT SPACE$(2);:LOCATE A+5,B/7:PRINT SPACE$(2);
  291. 3900  LOCATE A+6,B+7:PRINT SPACE$(2);:LOCATE A+7,B+7:PRINT SPACE$(2);
  292. 3910  LOCATE A+8,B+7:PRINT SPACE$(2);:RETURN
  293. 3920  ' 8
  294. 3930  LOCATE A+0,B+0:PRINT SPACE$(9);:LOCATE A+1,B+0:PRINT SPACE$(2);
  295. 3940  LOCATE A+1,B+7:PRINT SPACE$(2);:LOCATE A+2,B+0:PRINT SPACE$(2);
  296. 3950  LOCATE A+2,B+7:PRINT SPACE$(2);:LOCATE A+3,B+0:PRINT SPACE$(2);
  297. 3960  LOCATE A+3,B+7:PRINT SPACE$(2);:LOCATE A+4,B+0:PRINT SPACE$(9);
  298. 3970  LOCATE A+5,B+0:PRINT SPACE$(2);:LOCATE A+5,B+7:PRINT SPACE$(2);
  299. 3980  LOCATE A+6,B+0:PRINT SPACE$(2);:LOCATE A+6,B+7:PRINT SPACE$(2);
  300. 3990  LOCATE A+7,B+0:PRINT SPACE$(2);:LOCATE A+7,B+7:PRINT SPACE$(2);
  301. 4000  LOCATE A+8,B+0:PRINT SPACE$(9);:RETURN
  302. 4010  ' 9
  303. 4020  LOCATE A+0,B+0:PRINT SPACE$(9);:LOCATE A+1,B+0:PRINT SPACE$(2);
  304. 4030  LOCATE A+1,B+7:PRINT SPACE$(2);:LOCATE A+2,B+0:PRINT SPACE$(2);
  305. 4040  LOCATE A+2,B+7:PRINT SPACE$(2);:LOCATE A+3,B+0:PRINT SPACE$(2);
  306. 4050  LOCATE A+3,B+7:PRINT SPACE$(2);:LOCATE A+4,B+0:PRINT SPACE$(9);
  307. 4060  LOCATE A+5,B+7:PRINT SPACE$(2);:LOCATE A+6,B+7:PRINT SPACE$(2);
  308. 4070  LOCATE A+7,B+7:PRINT SPACE$(2);:LOCATE A+8,B+0:PRINT SPACE$(9);:RETURN
  309. 4080  ' 0
  310. 4090  LOCATE A+0,B+0:PRINT SPACE$(9);:LOCATE A+1,B+0:PRINT SPACE$(2);
  311. 4100  LOCATE A+1,B+7:PRINT SPACE$(2);:LOCATE A+2,B+0:PRINT SPACE$(2);
  312. 4110  LOCATE A+2,B+7:PRINT SPACE$(2);:LOCATE A+3,B+0:PRINT SPACE$(2);
  313. 4120  LOCATE A+3,B+7:PRINT SPACE$(2);:LOCATE A+4,B+0:PRINT SPACE$(2);
  314. 4130  LOCATE A+4,B+7:PRINT SPACE$(2);:LOCATE A+4,B+4:PRINT SPACE$(1);
  315. 4140  LOCATE A+5,B+0:PRINT SPACE$(2);:LOCATE A+5,B+7:PRINT SPACE$(2);
  316. 4150  LOCATE A+6,B+0:PRINT SPACE$(2);:LOCATE A+6,B+7:PRINT SPACE$(2);
  317. 4160  LOCATE A+7,B+0:PRINT SPACE$(2);:LOCATE A+7,B+7:PRINT SPACE$(2);
  318. 4170  LOCATE A+8,B+0:PRINT SPACE$(9);:RETURN
  319. 4180  ' CLEAR
  320. 4190  COLOR 7,0:LOCATE A+8,B+0:PRINT SPACE$(9);:LOCATE A+7,B+0:PRINT SPACE$(9);
  321. 4200  LOCATE A+6,B+0:PRINT SPACE$(9);:LOCATE A+5,B+0:PRINT SPACE$(9);
  322. 4210  LOCATE A+4,B+0:PRINT SPACE$(9);:LOCATE A+3,B+0:PRINT SPACE$(9);
  323. 4220  LOCATE A+2,B+0:PRINT SPACE$(9);:LOCATE A+1,B+0:PRINT SPACE$(9);
  324. 4230  LOCATE A+0,B+0:PRINT SPACE$(9);:COLOR 0,7:RETURN
  325. 4240  ' -----------------------------------------------------------------------
  326. 4250  '                                              15 MINUTE CHIME SUBROUTINE
  327. 4260  ' -----------------------------------------------------------------------
  328. 4270  '
  329. 4280  SOUND 1000,15:SOUND 32000,1:SOUND 800,15:SOUND 32000,1
  330. 4290  SOUND 900,15:SOUND 32000,1:SOUND 600,15:SOUND 32000,1:RETURN
  331. 4300  ' -----------------------------------------------------------------------
  332. 4310  '                                              30 MINUTE CHIME SUBROUTINE
  333. 4320  ' -----------------------------------------------------------------------
  334. 4330  '
  335. 4340  SOUND 600,15:SOUND 32000,1:SOUND 900,15:SOUND 32000,1:SOUND 1000,15
  336. 4350  SOUND 32000,1:SOUND 800,15:SOUND 32000,5:SOUND 1000,15:SOUND 32000,1
  337. 4360  SOUND 900,15:SOUND 32000,1:SOUND 800,15:SOUND 32000,1:SOUND 600,15:RETURN
  338. 4370  ' -----------------------------------------------------------------------
  339. 4380  '                                              45 MINUTE CHIME SUBROUTINE
  340. 4390  ' -----------------------------------------------------------------------
  341. 4400  '
  342. 4410  SOUND 600,15:SOUND 32000,1:SOUND 900,15:SOUND 32000,1:SOUND 1000,15
  343. 4420  SOUND 32000,1:SOUND 800,15:SOUND 32000,5:SOUND 1000,15:SOUND 32000,1
  344. 4430  SOUND 800,15:SOUND 32000,1:SOUND 900,15:SOUND 32000,1:SOUND 600,15
  345. 4440  SOUND 32000,5:SOUND 600,15:SOUND 32000,1:SOUND 900,15:SOUND 32000,1
  346. 4450  SOUND 1000,15:SOUND 32000,1:SOUND 800,15:RETURN
  347. 4460  ' -----------------------------------------------------------------------
  348. 4470  '                                                ON HOUR CHIME SUBROUTINE
  349. 4480  ' -----------------------------------------------------------------------
  350. 4490  '
  351. 4500  SOUND 1000,15:SOUND 32000,1:SOUND 800,15:SOUND 32000,1:SOUND 900,15
  352. 4510  SOUND 32000,1:SOUND 600,15:SOUND 32000,5:SOUND 600,15:SOUND 32000,1
  353. 4520  SOUND 900,15:SOUND 32000,1:SOUND 1000,15:SOUND 32000,1:SOUND 800,15
  354. 4530  SOUND 32000,5:SOUND 1000,15:SOUND 32000,1:SOUND 900,15:SOUND 32000,1
  355. 4540  SOUND 800,15:SOUND 32000,1:SOUND 600,15:SOUND 32000,5:SOUND 600,15
  356. 4550  SOUND 32000,1:SOUND 900,15:SOUND 32000,1:SOUND 1000,15:SOUND 32000,1
  357. 4560  SOUND 800,15:SOUND 32000,20
  358. 4570  '
  359. 4580  FOR I=1 TO TL:SOUND 400,15:SOUND 32000,15:NEXT:RETURN
  360. 4590  ' -----------------------------------------------------------------------
  361. 4600  '                                              SET DATE & TIME SUBROUTINE
  362. 4610  ' -----------------------------------------------------------------------
  363. 4620  '
  364. 4630  COLOR 7,0:CLS
  365. 4640  LOCATE 2,20:COLOR 0,7:PRINT"    S E T    D A T E    T I M E    "
  366. 4650  LOCATE 5,36:COLOR 7,0:PRINT"CURRENT DATE = ";DATE$
  367. 4660  LOCATE 7,20:INPUT"ENTER NEW DATE - ELSE ENTER--> ",IN$
  368. 4670  IF IN$="" THEN 4680 ELSE DATE$=IN$
  369. 4680  LOCATE 5,36:COLOR 0,7:PRINT"CURRENT DATE = ";DATE$
  370. 4690  LOCATE 10,36:COLOR 7,0:PRINT"CURRENT TIME = ";TIME$
  371. 4700  LOCATE 12,20:INPUT"ENTER NEW TIME - ELSE ENTER--> ",IN$
  372. 4710  IF IN$="" THEN 4720 ELSE TIME$=IN$
  373. 4720  LOCATE 10,36:COLOR 0,7:PRINT"CURRENT TIME = ";TIME$
  374. 4730  LOCATE 15,20:COLOR 7,0:PRINT"IS DATE AND TIME CORRECT ? (Y or N)"
  375. 4740  RESP$=INKEY$:IF RESP$="" THEN 4740
  376. 4750  IF RESP$="Y" THEN 4760 ELSE 4620
  377. 4760  D1SAVE=99:D2SAVE=99:D3SAVE=99:D4SAVE=99:TLSAVE=99:TR1SAVE=99:TR2SAVE=99
  378. 4770  GOTO 1330
  379. 4780  ' -----------------------------------------------------------------------
  380. 4790  '                                                    SET ALARM SUBROUTINE
  381. 4800  ' -----------------------------------------------------------------------
  382. 4810  '
  383. 4820  COLOR 7,0:CLS
  384. 4830  LOCATE 2,20:COLOR 0,7:PRINT"    S E T    A L A R M    T I M E S    "
  385. 4840  LOCATE 4,20:COLOR 7,0:PRINT"CURRENT DATE = ";DATE$
  386. 4850  LOCATE 5,20:PRINT"CURRENT TIME = ";TIME$
  387. 4860  LOCATE 7,10:PRINT"USE 24 HOUR CLOCK TIMES"
  388. 4870  LOCATE 9,15:COLOR 1,0:PRINT"TIMES"
  389. 4880  LOCATE 9,28:PRINT"ALARM DESCRIPTIONS"
  390. 4890  '
  391. 4900  FOR I=11 TO 16:LOCATE I,15:COLOR 7,0:PRINT SPACE$(64);:NEXT
  392. 4910  LOCATE 11,15:COLOR 1,0:PRINT ALARM$(1)
  393. 4920  LOCATE 11,28:PRINT ALDESC$(1)
  394. 4930  LOCATE 12,15:PRINT ALARM$(2)
  395. 4940  LOCATE 12,28:PRINT ALDESC$(2)
  396. 4950  LOCATE 13,15:PRINT ALARM$(3)
  397. 4960  LOCATE 13,28:PRINT ALDESC$(3)
  398. 4970  LOCATE 14,15:PRINT ALARM$(4)
  399. 4980  LOCATE 14,28:PRINT ALDESC$(4)
  400. 4990  LOCATE 15,15:PRINT ALARM$(5)
  401. 5000  LOCATE 15,28:PRINT ALDESC$(5)
  402. 5010  LOCATE 16,15:PRINT ALARM$(6)
  403. 5020  LOCATE 16,28:PRINT ALDESC$(6)
  404. 5030  LOCATE 7,40:COLOR 7,0:PRINT"YOU CAN SET UP TO 6 ALARM TIMES"
  405. 5040  LOCATE 11,15:LINE INPUT"",IN$
  406. 5050  IF IN$="" THEN 5060 ELSE ALARM$(1)=IN$
  407. 5060  LOCATE 11,15:PRINT SPACE$(10)
  408. 5070  LOCATE 11,15:PRINT ALARM$(1)
  409. 5080  LOCATE 11,28:INPUT"",IN$
  410. 5090  IF IN$="" THEN 5100 ELSE ALDESC$(1)=IN$
  411. 5100  LOCATE 11,28:PRINT SPACE$(50)
  412. 5110  LOCATE 11,28:PRINT ALDESC$(1)
  413. 5120  LOCATE 12,15:LINE INPUT"",IN$
  414. 5130  IF IN$="" THEN 5140 ELSE ALARM$(2)=IN$
  415. 5140  LOCATE 12,15:PRINT SPACE$(10)
  416. 5150  LOCATE 12,15:PRINT ALARM$(2)
  417. 5160  LOCATE 12,28:INPUT"",IN$
  418. 5170  IF IN$="" THEN 5180 ELSE ALDESC$(2)=IN$
  419. 5180  LOCATE 12,28:PRINT SPACE$(50)
  420. 5190  LOCATE 12,28:PRINT ALDESC$(2)
  421. 5200  LOCATE 13,15:LINE INPUT"",IN$
  422. 5210  IF IN$="" THEN 5220 ELSE ALARM$(3)=IN$
  423. 5220  LOCATE 13,15:PRINT SPACE$(10)
  424. 5230  LOCATE 13,15:PRINT ALARM$(3)
  425. 5240  LOCATE 13,28:INPUT"",IN$
  426. 5250  IF IN$="" THEN 5260 ELSE ALDESC$(3)=IN$
  427. 5260  LOCATE 13,28:PRINT SPACE$(50)
  428. 5270  LOCATE 13,28:PRINT ALDESC$(3)
  429. 5280  LOCATE 14,15:LINE INPUT"",IN$
  430. 5290  IF IN$="" THEN 5300 ELSE ALARM$(4)=IN$
  431. 5300  LOCATE 14,15:PRINT SPACE$(10)
  432. 5310  LOCATE 14,15:PRINT ALARM$(4)
  433. 5320  LOCATE 14,28:INPUT"",IN$
  434. 5330  IF IN$="" THEN 5340 ELSE ALDESC$(4)=IN$
  435. 5340  LOCATE 14,28:PRINT SPACE$(50)
  436. 5350  LOCATE 14,28:PRINT ALDESC$(4)
  437. 5360  LOCATE 15,15:LINE INPUT"",IN$
  438. 5370  IF IN$="" THEN 5380 ELSE ALARM$(5)=IN$
  439. 5380  LOCATE 15,15:PRINT SPACE$(10)
  440. 5390  LOCATE 15,15:PRINT ALARM$(5)
  441. 5400  LOCATE 15,28:INPUT"",IN$
  442. 5410  IF IN$="" THEN 5420 ELSE ALDESC$(5)=IN$
  443. 5420  LOCATE 15,28:PRINT SPACE$(50)
  444. 5430  LOCATE 15,28:PRINT ALDESC$(5)
  445. 5440  LOCATE 16,15:LINE INPUT"",IN$
  446. 5450  IF IN$="" THEN 5460 ELSE ALARM$(6)=IN$
  447. 5460  LOCATE 16,15:PRINT SPACE$(10)
  448. 5470  LOCATE 16,15:PRINT ALARM$(6)
  449. 5480  LOCATE 16,28:INPUT"",IN$
  450. 5490  IF IN$="" THEN 5500 ELSE ALDESC$(6)=IN$
  451. 5500  LOCATE 16,28:PRINT SPACE$(50)
  452. 5510  LOCATE 16,28:PRINT ALDESC$(6)
  453. 5520  LOCATE 19,20:PRINT"ARE ALL ENTRIES CORRECT ? (Y or N)"
  454. 5530  RESP$=INKEY$:IF RESP$="" THEN 5530
  455. 5540  LOCATE 19,20:PRINT SPACE$(40)
  456. 5550  IF RESP$="Y" THEN 5560 ELSE 4890
  457. 5560  D1SAVE=99:D2SAVE=99:D3SAVE=99:D4SAVE=99:TLSAVE=99:TR1SAVE=99:TR2SAVE=99
  458. 5570  GOTO 1330
  459. 5580  ' -----------------------------------------------------------------------
  460. 5590  '                                                   DISPLAY ALARM ROUTINE
  461. 5600  ' -----------------------------------------------------------------------
  462. 5610  '
  463. 5620  COLOR 7,0:CLS
  464. 5630  LOCATE 2,15:COLOR 0,7:PRINT"             A L A R M             "
  465. 5640  LOCATE 10,15:COLOR 7,0:PRINT ALDESC$(I);
  466. 5650  LOCATE 15,15:COLOR 23,0:PRINT"Press  Any  Key  To  Reset  Alarm";
  467. 5660  '
  468. 5670  SOUND 1000,5:SOUND 32000,5
  469. 5680  RESP$=INKEY$:IF RESP$="" THEN 5660
  470. 5690  D1SAVE=99:D2SAVE=99:D3SAVE=99:D4SAVE=99:TLSAVE=99:TR1SAVE=99:TR2SAVE=99
  471. 5700  ALARM$(I)="  :  ":ALDESC$(I)=STRING$(50,32)
  472. 5710  GOTO 1330
  473. 5720  ' -----------------------------------------------------------------------
  474. 5730  '                                                    INSTRUCTIONS ROUTINE
  475. 5740  ' -----------------------------------------------------------------------
  476. 5750  '
  477. 5760  COLOR 7,0:CLS
  478. 5770  LOCATE 1,10:COLOR 0,7:PRINT"    CLOCK    FUNCTION    CONTROLS    "
  479. 5780  LOCATE 4,10:COLOR 7,0:PRINT"  B = TIME CHANGE BEEP SET ON/OFF"
  480. 5790  LOCATE 6,10:PRINT"  C = CHIMES SET ON/OFF"
  481. 5800  LOCATE 8,10:PRINT"  E = ELAPSED TIME SET ON/OFF"
  482. 5810  LOCATE 10,10:PRINT"  M = CHANGE FROM 12 TO 24 HOUR MODE"
  483. 5820  LOCATE 1,55:COLOR 0,7:PRINT" CURRENT CONDITION ":COLOR 7,0
  484. 5830  LOCATE 4,60:IF BP1$="1" THEN PRINT" ON" ELSE PRINT"OFF"
  485. 5840  LOCATE 6,60:IF CH1$="1" THEN PRINT" ON" ELSE PRINT"OFF"
  486. 5850  LOCATE 8,60:IF ET1$="1" THEN PRINT" ON" ELSE PRINT"OFF"
  487. 5860  LOCATE 10,60:IF SW1$="1" THEN PRINT" 12" ELSE PRINT" 24"
  488. 5870  LOCATE 12,10:PRINT"  A = SET ALARM TIMES AND DESCRIPTIONS"
  489. 5880  LOCATE 14,10:PRINT"  R = RESET ELAPSED TIME"
  490. 5890  LOCATE 16,10:PRINT"  S = SET DATE AND TIME"
  491. 5900  LOCATE 18,10:PRINT"  ? = DISPLAY INSTRUCTIONS"
  492. 5910  LOCATE 20,10:PRINT"ESC = EXIT - RETURN TO SYSTEM MODE"
  493. 5920  LOCATE 24,20:COLOR 23,0:PRINT"Press  Any  Key  To  Continue";
  494. 5930  RESP$=INKEY$:IF RESP$="" THEN 5930
  495. 5940  COLOR 7,0:CLS
  496. 5950  D1SAVE=99:D2SAVE=99:D3SAVE=99:D4SAVE=99:TLSAVE=99:TR1SAVE=99:TR2SAVE=99
  497. 5960  GOTO 1330
  498. 5970  ' -----------------------------------------------------------------------
  499. 5980  '                                                            EXIT ROUTINE
  500. 5990  ' -----------------------------------------------------------------------
  501. 6000  COLOR 7,0:CLS:END
  502.